nginxでLua使ってみる話私的まとめ
概要
nginx lua使ってあそぶ。
といいつつ、luaでのコンテキストをWebSocket越えさせる目的がある。
死霊
Using ngx_lua / lua-nginx-module in pixiv
http://www.slideshare.net/harukayon/ngx-lua-public
lua-nginx-module を使いこなす
http://qiita.com/kz_takatsu/items/e94805a8e3cc285f9b33
Nginx で HTTP API 化
http://qiita.com/Hexa/items/cb762d70a741bcc57498
nginx + lua-nginx-module の環境構築
http://qiita.com/futoase/items/4185432667569b6b3f35
OpenResty (nginx + lua) 逆引きメモ
http://qiita.com/voluntas/items/e86f5fe5b8044c311583
lua_nginx module
こんなの。
https://github.com/openresty/lua-nginx-module
ビルド
欲しいのはluaが実行できてあとあとオレオレエンジンとしてコンパイル可能にするコマンドラインツールとしてのnginxなので、いろいろDLして、そろえる。
依存を最小限にするためにRestyそれ自体の使用はしないことを考えている。
あとであっさり言ってること変わるかもしれない。
というわけでコレクション。
nginx 1.7.10
LuaJIT-2.1
cloneして2.1ブランチに切り替えて動かす。
git clone http://luajit.org/git/luajit-2.0.git
んだけど、makeしてもlibとか作られないのか、どうすりゃ良いんだろう。
とりあえず2.0.3をbrewで入れて、そこに入っているlibを使う。nginxの設定ファイルは下記
lua-nginx-module
https://github.com/openresty/lua-nginx-module/releases/tag/v0.9.15
ngx_devel_kit
https://github.com/simpl/ngx_devel_kit/releases/tag/v0.2.19
パラメータ設定してnginxをビルド
luajit 2.1のlibはあとで作る。
build.sh
export LUAJIT_LIB=/usr/local/Cellar/luajit/2.0.3_1/lib
export LUAJIT_INC=/usr/local/Cellar/luajit/2.0.3_1/include/luajit-2.0
NGX_DEVEL_KIT="ngx_devel_kit-0.2.19"
LUA_NGX_MOD="lua-nginx-module-0.9.15"
# Here we assume Nginx is to be installed under /opt/nginx/.
./configure --prefix=/Users/illusionismine/Desktop/nginx-luajit/b \
--with-ld-opt='-Wl,-rpath,$LUAJIT_LIB' \
--add-module=$NGX_DEVEL_KIT \
--add-module=$LUA_NGX_MOD
make -j2
make install
で、実行すると、
sh build.sh
無事sbin/nginx が出来た。
実行してみると、Welcome画面でたのでOK。
実行とテスト
OpenRestyのCLIのやつでサクサクに、、、と思ったのだけれど、
自分の用途だとSublimeでのコード編集/ビルド時にcurlぶったたくほうが楽だったので、次のスクリプトを書いて終わった。
コード保存したりビルドするたびにcurlが走るだけ。状態持ってないからまだ後悔してない。
luaFire.sublime-build
{
"shell_cmd": "curl http://localhost/lua-test"
}
実行結果はコードの下の方に出る
お楽しみはここからだ
luaコンテキストを送信し合うのに興味がある。